package twelfth.System类对IO的支持;

import java.io.IOException;
import java.io.InputStream;

public class 不指定大小 {
    public static void main(String[] args) throws IOException {
        StringBuffer sb = new StringBuffer();
        System.out.println("请输入一段内容：");
        InputStream is = System.in;
        int temp = 0;
        while ((temp = is.read()) != -1) {
            char c = (char) temp;
            if (c == '\n') {
               break;
            }
            sb.append(c);
        }
        System.out.println("输入内容：" + sb.toString());
    }
}
/**
 * 这个程序如果输入的内容是英文字母 没有任何的问题，但是如果输入的是中文，则会产生乱码，是因为数据是以一个一个字节的方式读进来的
 * 但是中国字是分两次读取的，所以造成了乱码
 * 既然指定大小会出现空间限制，不指定大小输入中文会出现乱码，那么怎盐的输入形式才是最合理的。
 * 最好的方式是把全部输入数据暂时放到一块内存中，然后一次性从内存中读取，这样所有的数据只读一次，则不会造成乱码，而且也不会收到长度限制，
 * 如果要实现这样的操作可以用BufferedReader类完成。
 */
/*
D:\WorkSpaces\Java\jdk-21\bin\java.exe "-javaagent:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\lib\idea_rt.jar=54297:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath D:\WorkSpaces\JavaDevelopBase_start_329\out\production\JavaDevelopBase_start_329 twelfth.System类对IO的支持.不指定大小
请输入一段内容：
hello jordan
输入内容：hello jordan

Process finished with exit code 0

 */